package com.baofu.paycore.service.facade.model.refund.req;

import com.baofu.paycore.service.facade.model.PayBaseDTO;
import lombok.*;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import java.util.Date;

/**
 * 退款请求参数 DTO
 * <p>
 * </p>
 * User: kwl Date: 2016/6/4 ProjectName: paycore Version: 5.0.0
 */
@Getter
@Setter
@ToString(callSuper = true)
public class RefundReqDTO extends PayBaseDTO {

    /**
     * 序列化ID
     */
    private static final long serialVersionUID = 5660469684055191006L;

    /**
     * 原请求订单编号
     */
    @NotBlank(message = "原请求订单号编号不能为空")
    @Length(max = 32,message = "请求订单号不能超过32位")
    private String origRequestOrderNo;

    /**
     * 原请求业务编号
     */
    @NotBlank(message = "原请求业务编号不能为空")
    @Length(max = 32,message = "原请求业务编号不能超过32位")
    private String origRequestBizNo;

    /**
     * 原请求系统
     */
    @Length(max = 32,message = "请求系统不能超过32位")
    private String origRequestSystem;

    /**
     * 原请求日期
     */
    private Date origRequestDate;

    /**
     * 退款业务手续费(收手续费)
     *
     * 交易退款金额 = 交易总金额 - 收手续费金额 - 退手续费金额
     * refundAmt = amt - freeAmt = refundFreeAmt
     */
    private Long freeAmt;

    /**
     * 原交易手续费退款金额(退原交易手续费)
     */
    private Long refundFeeAmt;

    /**
     * 退款单扩展字段
     */
    private String refundExtra;

}
